[Android Studio] 起動時のメモリ割り当てサイズを変更する / コンパイラのエンコーディングを変更する
idea.vmoptions で起動時のメモリ割り当てサイズを変更する
Android Studio の環境設定の小ネタです。Android Studio (IntelliJ IDEA) でも Eclipse のときみたいに「起動時にどのくらいまでメモリを使うことを許容するか」メモリ割り当てを変更することができます。
手順は簡単。~/Library/Preferences/AndroidStudioPreview (Windows は $IDEA_HOME/bin/idea.exe.vmoptions) に idea.vmoptions というファイルを作り、以下のようなオプションを書くだけです!
-Xms512m -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops
設定したオプションは Android Studio.app/bin/idea.vmoptions をコピーして値を変えています。それぞれ以下のようになります。
プロパティ名 | 説明 |
---|---|
-Xms | 起動時のヒープサイズ |
-Xmx | 最大ヒープサイズ |
-XX:MaxPermSize | クラスファイルをメモリ上に読み込む最大サイズ |
-XX:ReservedCodeCacheSize | 予約コード(コンパイル済みのコード?)のキャッシュの最大サイズ |
-XX:+UseCodeCacheFlushing | コードキャッシュが大きくなったときにコンパイル済みのコードを消すことを有効にするフラグ |
-XX:+UseCompressedOops | Javaオブジェクトのヒープサイズが32GB未満の場合に64bitJREのパフォーマンスを向上させるフラグ |
自分のPCのスペックに応じて適切な値に変更しましょう。
idea.vmoptions でコンパイラのエンコーディングを変更する
Android Studio ではソース上に日本語のコメントを書くとビルドできないことがあります。以下のように「この文字は、エンコーディングSJISにマップできません」というエラーが出てしまいます。
このエラーが表示されたときは JDK のエンコーディングが UTF-8 に設定する必要があります。
方法はいろいろありますが idea.vmoptions に追加する方法がベストだと思います。app 内の Contents/info.plist に VMOptions を変更する方法などありますが、アップデートが入ったときに上書きされてしまう可能性もありますし、設定の優先度は idea.vmoptions のほうが高いようなので Preferences で設定したほうが良いと思います。
ということで以下を追加しましょう。
-Xms512m -Xmx1024m -XX:MaxPermSize=512m -XX:ReservedCodeCacheSize=128m -XX:+UseCodeCacheFlushing -XX:+UseCompressedOops -Dgroovy.source.encoding=UTF-8 -Dfile.encoding=UTF-8
これで再起動するとビルドできるようになっているはずです!
まとめ
Android Studio の起動オプションにまつわる2つの小ネタでした。メモリ割り当てサイズの変更は環境によっては劇的に爆速化することもありますので、設定が必要なかたは参考にしてください。